This invention relates to web servers on the Internet. In particular, this invention pertains to an improved method of transmitting web pages over the Internet from a server to a client.
In order to understand the multi-cast enabled web server and browser of the present invention, network data transmission methods and typical web client/server interactions must be understood.
With respect to data transmission methods, most networks that interact with each other on the Internet follow the Internet Protocol Version 4 (xe2x80x9cIPv4xe2x80x9d) standard for transmitting data. Internet Protocol (xe2x80x9cIPxe2x80x9d) is part of the TCP/IP family of protocols describing software that tracks the Internet address of nodes, routes outgoing messages, and recognizes incoming messages. The two most common methods for transmitting data under IPv4 are unicasting and broadcasting.
As used herein, the term xe2x80x9cunicastingxe2x80x9d is defined as the sending of information across a network or the Internet from one specific computer to another specific computer. Unicasting is the most common method of transmitting information over the Internet. FIG. 1 illustrates the unicasting method of data transmission. As shown in FIG. 1, Host A 100 is unicasting information to the computer labeled Host D 102. All other hosts 104, 106, 108 on the Internet 110 ignore this information.
The problem with using the unicasting method to transmit information across the Internet for high-volume web pages is apparent. For example, if a host computer receives five thousand (5000) requests for the same web page, the host computer must-if using the unicasting method-separately transmit the same web page five thousand (5000) times to each different client. Thus, when used for high-volume web pages, the unicasting method unnecessarily places a heavy load on the host computer.
Another method of data transmission is broadcasting. As used herein, the term xe2x80x9cbroadcastingxe2x80x9d is defined as the sending of information from one specific computer within a network segment or an Internet segment to every other computer in that segment. A xe2x80x9cnetwork segmentxe2x80x9d or an xe2x80x9cInternet segmentxe2x80x9d is a subset of the network that appears on one side of a router. Every one of these receiving computers must process the broadcast message, it cannot be ignored. However, it should be noted that broadcasted messages are not propagated across Internet segments. Thus, in order for the broadcasting method to work, it is a requirement that all involved computers must be on the same network segment. FIG. 2 illustrates the broadcasting method of data transmission. As shown in FIG. 2, if Host A 100 wants to send information to Host D 102 using the broadcasting method, Host A 100 must broadcast information to all computers 102, 104, 106, 108 on the Internet segment 200.
The problems with using the broadcasting method to transmit information across the Internet are also apparent. For example, the broadcasting method is not able to transmit information across multiple Internet segments. In addition, the broadcasting method is very inefficient if only a small number of clients have requested the same information, because each computer that receives the broadcast message must process the message and cannot ignore it. Thus, the broadcasting method unnecessarily shifts the burden from the host computer to each individual client within a given Internet segment.
Accordingly, it is an object of the present invention to provide an improved method of supplying information over a network that minimizes the loads placed on the host computer as well as on each client, and also minimizes the amount of network bandwidth required to transmit the information to the requesting clients.
The method of the present invention supplies a requested web page to at least one client. In normal operation, a server or host computer waits for a client to request a web page. After being requested, the server determines whether the requested web page should be multi-cast or unicast. If the server determines that the requested web page should be unicast, the web page is unicast to the client. If the server determines that the requested web page should be multi-cast, the server next determines whether the requested web page is currently being multi-cast. If the requested web page is currently being multi-cast, the server re-directs the client to a multi-cast address and then increments a counter by one. If the requested web page is not currently being multi-cast, the server re-directs the client to a multi-cast address, sets the counter to a numeric value of one and initiates a multi-cast of the requested web page.